# -*- coding:utf-8 -*-

''' 计算调度的核心类
    
'''



class Controller(object):
    ''' 计算调度类
        需要按照 init(...) ==> prepare(...) ==> run(...) ==> output(...)的顺序调用

        职责：
            根据配置对象,创建tasks,并验证合法性. 
            在执行循环过程中，为tasks准备需要的数据并按每个stock执行它，但不从task接收返回值
            控制整个stock相关的元信息,如板块归属
    '''

    def __init__(self,conf):
        ''' conf为传入的已经加载成功的配置对象
            根据配置建立task并验证其合法性
            
            conf的格式
            - script_groups:
                - group_path(与当前file所在路径相关的真实路径):
                    -xxxxx.py(name):
                        - arg_fields: (...)
                        - args_list:   
                            -
                            -
                            -
                    ...
                ...
        '''
        pass


    def prepare(self):
        ''' task准备 
            准备data
            准备meta_data. 附加ALL一类catalog(囊括所有股票),和ALLCATALOG一类,囊括所有catalog型股票
        '''
        pass

    def run(self):
        ''' 执行 '''
        pass



